Offshore Testing: Making It Work

Part of our CEO Series of articles aimed at business people who need to know more about technology.

Contents

Motivation

The primary motivation for looking at offshoring your IT testing is cost. The labour arbitrage between Australia and India or Manila is still a large enough factor to tempt people in to considering an offshore testing function. However if this is your only reason for doing it then you are not only missing out on some big opportunities but you are also likely to be disappointed.

Organisations that focus only on the cost benefits can lose sight of the overall value they are receiving.

It is common to find organisations that have attempted to offshore their testing functions and see the output and effectiveness drop significantly as a result. The difference between organisations that are successful and those that fail is what we will look at in this article. By far the biggest factors in failure are a lack of commitment and the destructive power of naysayers.

Any organisation can make offshore testing successful if they have a long term commitment to it.

An additional motivation is also often to break up the onshore testing and try to start again. Einstein's definition of stupidity is doing the same thing over and over again and expecting different results. If you don't learn from your previous experiences with testing then you will be doomed to repeat them, only this time it will be worse as it will be a long distance relationship.

The right reason to offshore your testing is to do it better and more efficiently. If you are doing it for any other reason then you should double check your motives before you start.

Distance is one of the biggest obstacles to setting up effective offshore functions, and while this is also true for some aspects of your offshore testing service it can also be an advantage. By having your testers away from your developers it encourages independent work. A tester working off the same spec as a developer will not be influenced by the discussions that the developers are having and will stay true to the original specifications.

Let's look at the benefits that you can achieve if you get your offshore testing right:

  • Cost effective
  • Improved service
  • Access to better skills
  • Timezone benefits (testing later in your day)
  • Scalable
  • Driver for overall better SDLC processes

Approach

Once you have decided to explore an offshore testing function, you have a few things to consider. Do you want to use a third party provider or are you going to build your own captive offshore centre? Where are you going to put it? Where will it report into the organisation? Who will run it? Do you need to second people offshore to set it up? How long a commitment are you going to make? How will the rest of your organisation need to change if this is to be successful?

The answers to these questions are going to depend a lot on the specific details of your organisation but we can look in general at the models that you should consider.

Location and Captive vs Outsourced

All of my experience with offshoring has been in India and Manila. There are other locations that also offer good skills, especially in other parts of Asia, but I don't know enough about them to discuss them from first hand experience. For the purpose of this article we will restrict the discussion to India and The Philippines but much of the thinking should be transferable to other locations.

It is important to properly understand the job markets that your testers will be coming from. The location and how the job markets operate are significant factors in how you set up your team. Specifically the Indian job market can be difficult to navigate and we recommend going through a local third party provider if you want to set up in India. Most IT staff are on a three month notice period which gives you a long lead time for hiring. There also isn't much loyalty in place after a job offer has been accepted and it is not uncommon to find that someone that has accepted your job offer will find a better offer just before they are due to start with you. This can mean that even after the recruitment process has been completed, you may still wait another 3 months and even then not get anyone to fill your role.

Local outsourcers are prepared for this and have the volume of staff to cope with problems. By using a local provider in India you will be buffered from these issues and you can gain access to the highly skilled and very deep Indian IT markets.

The Philippines on the other hand is well suited to building a captive centre. The job market is much more straightforward and there is a higher level of maturity. There are also a lot of third parties available if you want to go down the outsourcing path. The Philippine market is not as deep as India and the skills are generally not as good as the IT skills available in India but the big exception to this is testing where the skills are at least as well developed.

Testing is treated as a true career in Manila. In many other locations there is a preference for being a developer or a BA or a project manager, but in Manila at least as many people aspire to being testers. This means that the quality of staff (especially at the more junior levels) is excellent.

If you aren't really sure that you want to commit long term to an offshore testing team, or you just want to take it slowly, then organisations such as Yempo offer an alternative. They will hire the staff for you and manage them in The Philippines and allow you to break off and form your own captive if things get big enough. At 17 Ways we have a partnership with Yempo so if you are interested in us providing a Sydney based offering for you in testing or development, that is backended by staff in The Philippines provided by Yempo, then we can do that for you. Alternatively you may choose to deal directly with Yempo yourself of course.

Organisation Structure

Commitment and engagement are the key factors in making this work. If you create your offshore testing team as a separate part of your company then your onshore teams have no incentive to make it work. There will be natural level of resentment anyway when you start offshoring any function and if you don't address this head on then it will keep coming back to bite you.

We recommend having your offshore teams report into your onshore teams at the lowest levels possible in the organisation. Make your offshore staff an integral part of your overall teams.
While no organisational structure is ever perfect, at least while you are building up the teams, we recommend that you make the onshore teams fully responsible for the success or otherwise of the total function, including the offshore staff. In this way you get much better engagement and more focus on success. It will put more pressure on any senior management that you have offshore and will give some staff dual reporting lines, but it is the best approach if you want things to work.

Measuring Success

Within a few months of starting to set up your offshore testing team someone is certain to ask you how you will measure success. They will propose a number of metrics around defect tracking, defects found after release to production, hours of testing per function point and probably a whole lot of other things. Your answer should be simple: "We will use the same measures that we use for the rest of the company."

Because your testing service is remote and you don't have line of sight management available to you, it is tempting to try to come up with some sort of dashboard or measurement system so you can keep an eye on what they are doing. You must resist this temptation. It will create an "Us and Them" situation that will be hard to move away from (plus the metrics are unlikely to be fully meaningful - you care about the overall delivery of the team, not just your test function). Empower your line managers to take whatever action they need to get a good outcome and you will have less angst and more delivery.

Implementation

Ok, you've chosen your model, you have galvanised internal support and you have worked out your org structure... time to start getting people onboard.

Captive

I could write a whole article on the things you need to consider if you are setting up your own captive (and maybe I will) but here are some of the things you need to take in to account. Firstly you are going to need a local to help you in whichever country you operate in. A local will know far better than you how things work in their own country and some countries insist on businesses being jointly run with a local. Find someone that you can trust and spend time in the country with them.

You will need to register your company, probably multiple times, and you will need to find premises. Serviced Offices are available in all countries and are a good way to get started. Think about your location, not only does it need to be somewhere reasonably nice so you can get visitors to go there and come back with a positive view of the place (more on that later), but you also need to choose somewhere that your staff can get to easily. Don't just pick somewhere near the hotel you are staying in, you need to think of it from the point of view of your staff.

Depending upon the size of the team you want to build you may need an HR recruitment specialist or even a full HR team. Local rules vary a lot and you need someone who understands this from a legal point of view. This may not be the person who is best at hiring people so think about the structure of your HR department and hire them first. If you are only hiring a few people then you can probably make use of a recruitment agency or build relationships with some of the body shop companies who can provide you with staff.

If it all seems too hard, but you want to build your own team nonetheless, think about using an organisation like Yempo to help you.

You are going to need to send people there to do the interviewing in person. Be aware that some countries are not used to dealing with Australians and will find your hiring managers brash. Once you have hired any locals, start to use them in the interview process as much as possible. You will need a proper onboarding process to make sure people are not lost when they start work (I once found a guy sitting in a cupboard who had been there for two days with no phone and no computer, funnier now than it was at the time). Make your onshore teams come up with the technical parts of the onboarding process and assign a local and onshore buddy to everyone who joins.

Understand why people will want to join your company and make sure that your interviewers (especially those from onshore) are familiar with all of the benefits. For example, in Manila you can give staff rice and clothing allowances which are better than cash. You may also have access to tax breaks for your staff depending upon the status of your company. In many Asian countries potential staff will often ask their parents before accepting a job. If the parents haven't heard of your company and their child is considering a job at a company that they have heard of then you may miss out. One thing you can do to prevent this is to include something small for the parents in the employment package. For example a Starbucks card that gives them a free coffee every week.

If you are only hiring a small number of people then some of this won't apply. When I was setting up a development and testing function in Manila I hired about 400 people in 12 months and without a really good HR function and full engagement from the onshore teams, it could never have happened.

Outsourcing

Every outsourcing company will tell you that you don't need to lift a finger to work with them. Don't believe a word of it!

Obviously you won't have to do all of the HR functions that are needed for a captive but you are still going to need to do a lot of work. All of the same principles apply - you need a strong commitment from your onshore teams, you need to make sure everyone working with you feels a part of your company (but legally you will need to make sure some things are arms length since they are not your staff).

Under no circumstances accept any staff who your people haven't interviewed personally.

Make sure you include enough budget for regular trips to the offshore location for as many staff as possible. This is needed not only during the set up phase but for ever more.

The standard trick with outsourcers is to give you great people to begin with and then to swap them out for more junior staff. You need to be very vigilant about this. The more painful you are to deal with the better staff you will be given to keep you quiet. Especially in India, you may be offered "free" resources to back up your team in times of sickness or leave. For example you may have a team of 10 testers and be offered an extra tester who you will only be charged for if someone else is away. This is quite a good deal for you and for the outsourcer. For them it is income protection as with a team of 10 people there is almost always someone away. It is tempting to consider this a free deal and not to worry about it but you should make sure the person provided for free is as competent and a good fit for you as any other members of the team.

Internal Change

It is tempting to view your new test team as a side initiative, something that doesn't really affect the rest of your teams. This would be a grave mistake. If you hired the same people in Australia then you would be making announcements, having get-to-know-you sessions and bringing the new starters around the office to shake hands. You might even feel that because you are offshoring you are doing something devious and need to hide it from people. You might try telling people it is a 'trial' or it's just temporary or some other thing to make it seem not so bad. Resist these temptations. Tell everyone you meet about the great thing you are doing. Be enthusiastic and make sure people know you are doing this so the company gets the best possible test team because you want your systems to be the best in the World.

By now you will have identified the naysayers. Some you can ignore, but some you need to tackle head on. Give them a significant role in the set up of the new team, something large enough that it will be a major part of how they are assessed this year. For example managing the budget for the new team, going and arranging the office, or hiring and managing the senior leaders. Reinforce this role by telling others and directing all issues to the person now in charge. This won't completely turn them in favour of it but it will make it hard for them to scupper your plans.

Silence the naysayers by giving them a part of the implementation to deliver. Personal success always trumps silently held views.

The biggest internal changes that you will need to make apart from the organisation structure, is your development processes or SDLC (Software Development Life Cycle). You have just hired people in another country to test your systems. They are not going to be having casual conversations in the kitchen with your users, architects or developers. You will need to be more formal about requirements gathering. For a tester to be fully effective they need to know what the BA or user wanted, not just what the developer built.

Good testers provide three main things. Firstly they test the bugs out of your developer's code. They find the broken links and the numbers that don't add up. They find the combinations that don't work, like cancelling a modified trade. These are the things that developers typically miss. Secondly they find the misinterpretations between the requirements and the implementation. The user needs to be able to connect multiple agents to an account but the developer only allows one agent per account. These things will only be found if the tester has access to the requirements. Finally testers are the proxy users. They are often the only people in the IT department who really know how a system works from the user's point of view. They are a great source of information for BAs, developers and operations, when they need to know something complicated.

When you put your budget together, make sure you include a lot of travel in both directions.

Operation

It's time to introduce you to something that you probably don't want to hear. The diagram on the right is a cautionary tale about offshoring. Once you have completed your build out, you are only part way there.

A common scenario for many companies is that they spend the first year or so focussing on getting it to work and then forget all about it. Like a game of snakes and ladders, they get to the first snake and slip down to point (A). The 10 people who visited the offshore site in the first year don't come back at all in the second year. The team meetings that used to happen once a week no longer include the offshore people because it was proving too hard. Shadow resources start to appear now the pressure is off to build the offshore team. Instead of hiring offshore you start to take on one or two testers in Australia. Basically instead of focusing on making it work and taking it to the next level, you start to pretend it isn't even there.

After the initial set up you need to maintain the focus on growing your capability or it will wither and die.

Of course this won't happen to you. You will be one of the successful companies that ensures the focus remains on your much prized offshore test team. Here are some of the ways you can do this:

  • Budget for lots of travel every year, not just the first year.
  • Get commitment from senior management to visit regularly.
  • Ban tactical hiring onshore. Fly in someone if you need them urgently.
  • Ask the offshore team to come up with the next steps for expansion.
  • Always include the offshore team in team meetings and townhalls.
  • Invest in video conferencing technology.
  • Talk to others about your success.
  • And finally... don't let anybody with metrics anywhere near it.

Summary

Hopefully that has given you a flavour for the kind of things you need to consider when setting up your offshore testing services. Whether you choose to build your own captive, use an outsourcing company or do a Yempo type model, many of the same principles apply to being successful.

If you commit to it and are prepared to change the ways you work to make it effective, then offshoring can be an extremely effective way to deliver part of your technology requirements. If you get it right then not only will you find the offshore team to be effective but there will be knock on effects for your onshore teams. Having clearer requirements will help you to deliver better systems. Having dedicated testers who become experts in your systems will provide an areas for advice across your whole organisation, and having different cultures and backgrounds as part of your team brings diversity and different ways of thinking that will have a wide benefit.

We wish you well with setting up your offshore testing function and if you would like help with it please contact us at 17 Ways to see how we can get involved with making it a success for you.